package com.ruoyi.web.mapper;

import com.ruoyi.web.cp.domain.rm.CpAo5;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface CpAo5Mapper {

    /**
     * 插入一条记录
     */
    int insert(CpAo5 cpAo5);

    /**
     * 根据ID删除记录
     */
    int deleteById(Integer id);

    /**
     * 更新记录
     */
    int update(CpAo5 cpAo5);

    /**
     * 根据ID查询记录
     */
    CpAo5 selectById(Integer id);

    /**
     * 查询所有记录
     */
    List<CpAo5> selectAll();

    /**
     * 查询近26小时内的数据
     */
    List<CpAo5> selectRecent26Hours();

    List<String> selectPreDrawIssueByDate(@Param("date") String date);

    // 获取最近2000条记录
    List<CpAo5> selectRecentLimit2000();

    List<String> selectRecentLimit2000Codes();

    // 获取最近N条记录
    List<String> selectRecentLimitN(@Param("minute") int minute,
                                    @Param("offset") int offset,
                                    @Param("limit") int limit);

    // 获取最新一条记录
    CpAo5 selectLatest();

    // 检查最新一组数据是否与前2000组中有重复
    boolean checkLatestDuplicateInRecent2000();

    List<CpAo5> selectTop5(@Param("maxIssue") String maxIssue);

    List<CpAo5> selectTopX(@Param("maxIssue") String maxIssue, @Param("limit") int limit);

    List<CpAo5> selectTop100();

    List<String> selectAllIssue();

    void deleteDoubleRecode();

    List<String> selectPreDrawCode2(@Param("index1") String index1,
                                    @Param("index2") String index2,
                                    @Param("code1") String code1,
                                    @Param("code2") String code2,
                                    @Param("offset") int offset,
                                    @Param("limit") int limit,
                                    @Param("maxIssue") String maxIssue);

    List<CpAo5> selectByPreDrawIssues(List<String> issues);
}
